Imports CapaDeNegocios
Imports System
Imports System.EventArgs
Partial Public Class FrmLocalidadABM
    Inherits System.Web.UI.Page
    Dim Localidad As nLocalidad = New CapaDeNegocios.nLocalidad
    Dim Provincias As nProvincia = New CapaDeNegocios.nProvincia
    Dim comprobacion As nComprobaciones = New CapaDeNegocios.nComprobaciones


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            If Session("Login") = "Anonimo" Then
                Response.Redirect("/")
            End If
            ProcLlenarGrid()
            CargarProvincias()
            LnkGuardar.Visible = True
            LnkModificar.Visible = False
            LnkEliminar.Visible = False
        End If
    End Sub
    Sub ProcLlenarGrid()
        LblError.Text = ""
        LblError.Visible = False
        Dim oProv As Integer
        Dim oLoc As String = ""
        Dim oCP As Integer

        If oProv = -1 Then
            oProv = 0
        End If

        If TxtLocalidad.Text <> "" Then
            oLoc = TxtLocalidad.Text
        End If
        If TxtCodigoPostal.Text <> "" Then
            oCP = TxtCodigoPostal.Text
        End If

        GridLocalidades.DataSource = Localidad.Listar(oLoc, oCP, oProv)
        GridLocalidades.DataBind()
    End Sub

    Sub ProcLimpiarForm()
        TxtLocalidad.Text = ""
        TxtCodigoPostal.Text = ""
        CargarProvincias()
        LnkGuardar.Visible = True
        LnkModificar.Visible = False
        LnkEliminar.Visible = False
        LblError.Visible = False
        LblError.Text = ""
    End Sub

    Sub CargarProvincias()
        CboProvincias.Items.Clear()
        CboProvincias.Items.Add(New ListItem("TODOS", -1))
        CboProvincias.DataSource = Provincias.Listar(0, "", "")
        CboProvincias.DataTextField = "Nombre"
        CboProvincias.DataValueField = "CodigoProv"
        CboProvincias.DataBind()

    End Sub

    Protected Sub LnkBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkBuscar.Click
        buscar()
    End Sub
    Sub Buscar()
        LnkEliminar.Visible = False
        LblError.Visible = False
        LblError.Text = ""
        If comprobacion.FN_EsNumero(TxtLocalidad.Text) = True Then
            LblError.Text = "Nombre de la Localidad no debe ser de tipo numerico"
            LblError.Visible = True
            Exit Sub
        End If
        If Len(TxtCodigoPostal.Text) <> 0 Then
            If comprobacion.FN_EsNumero(TxtCodigoPostal.Text) = False Then
                LblError.Text = "El Codigo Postal debe ser de tipo Numerico"
                LblError.Visible = True
                Exit Sub
            End If
        End If

        If LblError.Text = "" Then
            If CboProvincias.SelectedValue = -1 Then
                GridLocalidades.DataSource = Localidad.Listar(TxtLocalidad.Text, TxtCodigoPostal.Text, "")
                GridLocalidades.DataBind()
                Exit Sub
            End If
            If CboProvincias.SelectedValue > 0 Then
                GridLocalidades.DataSource = Localidad.Listar(TxtLocalidad.Text, TxtCodigoPostal.Text, CboProvincias.SelectedValue)
                GridLocalidades.DataBind()
            End If
        End If

    End Sub
    'paginado del Grid
    Private Sub GridLocalidades_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridLocalidades.PageIndexChanging
        GridLocalidades.PageIndex = e.NewPageIndex
        Buscar()
    End Sub

    Protected Sub LnkEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkEliminar.Click
        Localidad.EliminarLocalidad(Session("CodigoLocalidad"))
        LblError.Text = "La Localidad no pudo ser eliminada"
        ProcLlenarGrid()
    End Sub

    Protected Sub LnkCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkCancelar.Click
        ProcLimpiarForm()
        CargarProvincias()
        GridLocalidades.Dispose()
        GridLocalidades.DataSource = Localidad.Listar(TxtLocalidad.Text, TxtCodigoPostal.Text, "")
        GridLocalidades.DataBind()
        CboProvincias.SelectedValue = -1
    End Sub

    Protected Sub LnkGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkGuardar.Click
        LblError.Text = "Verifique "
        LblError.Visible = False

        If CboProvincias.SelectedValue = -1 Then
            LblError.Visible = True
            LblError.Text = "Seleccione una Provincia"
            CboProvincias.Focus()
            Exit Sub
        End If

        If comprobacion.FN_Vacio(TxtLocalidad.Text) = True Then
            LblError.Visible = True
            LblError.Text = "Ingrese un nombre para la localidad"
            TxtLocalidad.Focus()
            Exit Sub
        Else
            If comprobacion.FN_EsNumero(TxtLocalidad.Text) = True Then
                LblError.Visible = True
                LblError.Text = "El nombre de la localidad debe ser de tipo Texto"
                TxtLocalidad.Focus()
                Exit Sub
            End If
        End If

        If comprobacion.FN_Vacio(TxtCodigoPostal.Text) = True Then
            LblError.Visible = True
            LblError.Text = "Ingrese un codigo postal"
            TxtCodigoPostal.Focus()
            Exit Sub
        Else
            If comprobacion.FN_EsNumero(TxtCodigoPostal.Text) = False Then
                LblError.Visible = True
                LblError.Text = "El Codigo Postal debe ser de tipo Numerico"
                TxtCodigoPostal.Focus()
                Exit Sub
            End If
        End If

        'verificar si la localidad ya se encuentra cargada en la provincia
        'Localidad.Listar(TxtLocalidad.Text, "", CboProvincias.SelectedValue)


        If HFId.Value.ToString = "" Then
            If LblError.Visible = False Then
                If Localidad.InsertarLocalidad(TxtLocalidad.Text, TxtCodigoPostal.Text, (CboProvincias.SelectedValue)) Then
                    LblError.Text = "Error de Insercion"
                End If
                ProcLlenarGrid()
                LnkGuardar.Visible = False
                LnkModificar.Visible = False

            End If
        Else 'modificar

            If Localidad.ModificarLocalidad(Session("CodigoLocalidad"), TxtLocalidad.Text, TxtCodigoPostal.Text, CboProvincias.SelectedValue) Then
                LblError.Text = "Error de Actualizacion"
            End If

            ProcLlenarGrid()
        End If
    End Sub

    Protected Sub GridLocalidad_RowCommand(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridLocalidades.RowCommand
        Dim ProvSel As Integer

        If e.CommandName = "Select" Then
            TxtLocalidad.Text = e.CommandSource.parent.parent.FindControl("LblNombre").text
            TxtCodigoPostal.Text = e.CommandSource.Parent.Parent.FindControl("LblCodigoPostal").text
            ProvSel = Localidad.ProvinciaXLocalidad(e.CommandSource.Parent.Parent.FindControl("HdLocalidades").value)
            CboProvincias.SelectedValue = ProvSel


            'CboProvincias.SelectedValue = e.CommandSource.Parent.Parent.FindControl("HdLocalidades").text
            'ver como direccionar el elemento
            Session("CodigoLocalidad") = e.CommandSource.Parent.FindControl("HdLocalidades").value
            LnkGuardar.Visible = True
            LnkEliminar.Visible = True
        End If
    End Sub

    Protected Sub CboProvincias_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboProvincias.SelectedIndexChanged
        GridLocalidades.DataSource = Localidad.Listar("", 0, CboProvincias.SelectedIndex)
        GridLocalidades.DataBind()
    End Sub
End Class